Fyyur: Artist Booking Site
Data Models
Criteria | Meet Specification |
---|---|
Implement data models in relational, normalized form. |
Correct data types are associated with each field.
The
|
Connect data models to a database. |
The code creates a local postgresql database connection. |
Demonstrate a good grasp of database normalization. |
The
The Artists and Venues models are in third normal form. |
Demonstrate a good grasp of SQLAlchemy. |
The code uses SQLAlchemy syntax to completely define the models. The code has accurate SQL queries wrapped in SQLAlchemy commands per API endpoint, calling to define data models and serving expected responses per API endpoint. The code only uses raw SQL where SQLAlchemy wrappers do not suffice, otherwise minimizing use of raw SQL. |
SQL
Criteria | Meet Specification |
---|---|
Use SQL syntax to select records from a database. |
The code successfully translates SQLAlchemy code for selecting records from the database into the equivalent PostgresSQL command(s) for selecting records from the database.
The code demonstrates correct use of
|
Use SQL syntax and SQLAlchemy to join relational tables and conduct joined queries. |
The code joins tables from existing models to select Artists by Venues where they previously performed, successfully filling out the Venues page with a “Past Performances” section. The code joins tables from existing models to successfully fill out the Artists page with a “Venues Performed” section. he code includes correct equivalents in SQL for all corresponding SQLAlchemy statements. |
Use SQL to create records with uniqueness constraints. |
Code connects the New Artist and New Venue forms to a database by successfully using SQLAlchemy to insert new records into the database upon form submission. Understands the equivalent SQLAlchemy command in SQL syntax, using INSERT INTO. Code correctly uses SQL constraints to ensure fields that need to be unique, and fields that are required, are given these constraints on the database level, throwing an error if otherwise. |
Application Quality & Deployment
Criteria | Meet Specification |
---|---|
Demonstrate the ability to construct a well-organized code base. |
Code is decoupled into relevant parts across the files. The code includes good use of comments where there is lack of clarity. Where comments are not provided, the code is self-documenting. Encapsulate querying code in proper places across Models and API endpoints. |
Create a web app that builds successfully and runs without errors |
|
Tips to make your project standout:
-
CHALLENGE: Implement time availability, so that an artist is only available to be booked at certain dates/times. Disable the ability to create book an artist for a show outside of their availability.
-
Show Recent Listed Artists and Recently Listed Venues on the homepage, returning results for Artists and Venues sorting by newly created. Limit to the 10 most recently listed items.
-
Showcase what albums and songs an artist has on the Artist’s page.